package com.imau.service;

import com.imau.bean.Permission;
import com.imau.bean.TreeEntity;

import java.util.List;
import java.util.Map;

/**
 * 权限服务
 * @author: yangzj
 *
 */
public interface PermissionService {

    /**
     * 1.保存权限
     */
    public int savePermission(Map<String,Object> map);

    /**
     * 2.更新权限
     */
    public int updatePermission(Map<String,Object> map);
    /**
     * 3.根据id查询
     *     3.1.查询权限
     *     3.2.根据权限的类型查询资源
     *     3.3.构造map集合
     */
    public Map<String, Object> findByPermissionId(String id);
    /**
     *  4.查询全部
     *  type      : 查询全部权限列表 type：0：菜单 + 按钮（权限点） 1：菜单2：按钮（权限点） 3：API接口
     *  pid ：父id
     */
    public List<Permission> findAllPermission(Permission permission);




    /**
     * 构建前端所需要树结构
     *
     * @param permissions 权限菜单列表
     * @return 树结构列表
     */
    public List<Permission> buildPerTree(List<Permission> permissions);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param permissions 权限菜单列表
     * @return 下拉树结构列表
     */
    public List<TreeEntity> buildPerTreeSelect(List<Permission> permissions);
    /**
     * 5.根据id删除
     *  5.1.删除权限
     *  5.2.删除权限对应的资源
     *
     */
    public int deleteByPermissionId(String id);

}
